A technique in which processing is executed by a plurality of processing devices while the processing load is dispersed to the plurality of processing devices is known. For example, in a computing system in which a plurality of calculation devices are connected to each another, jobs are distributed to the respective calculation devices so as to be executed by the calculation devices, whereby the respective calculation devices are used as calculation nodes.
In most of computing systems having a plurality of nodes, the nodes contain calculation nodes each of which has Input/Output (I/O) capability (hereinafter referred to as an “I/O-capable calculation node”), and simple calculation nodes each of which has no I/O capability. The simple calculation node is a calculation node which has a Central Processing Unit (CPU) and a memory, and serves to execute calculation processing. However, the calculation node might have some I/O.
On the other hand, the I/O-capable calculation node is a calculation node which is equipped with not only a CPU and a memory, but also a storage device such as a HDD or the like and an input/output unit to be connected to a network. The I/O-capable calculation node also consumes its processing capacity for the I/O processing, and thus the pure calculation processing capacity to process a job in the I/O-capable calculation node is relatively lower than that in the simple calculation node having no I/O capability or a simple I/O capability.
Furthermore, when the type, the number, or the operation frequency of the CPU(s) mounted in the calculation node are different among the calculation nodes, there occurs a difference in calculation capacity among the calculation nodes.
The following are documents that describe multi-node processing systems.
[Patent document 1] JP-T-2001-503170
[Patent document 2] JP-A-2000-151873
[Patent document 3] JP-A-2005-182641
When jobs are equally distributed to calculation nodes which are different in job processing capacity as in the case of the I/O-capable calculation node and the simple calculation node, there is an advantage that the calculation resource is not needlessly wasted because the jobs are distributed to all the calculation nodes including the I/O-capable calculation nodes. However, time required for the job processing having the same processing quantity is longer in the I/O-capable calculation node than that in the simple calculation node, and thus a standby time occurs in the simple calculation node until the next processing is executed, so that there is a disadvantage that the time required to complete all the jobs is greatly increased.
On the other hand, when job allocation, or job distribution in other words, is not executed on the I/O-capable calculation nodes, but job allocation is executed on only the simple calculation nodes, there is an advantage that a processing delay which would be caused by a delay of synchronization does not occur because the simple calculation nodes are not required to wait for the completion of the processing by the I/O-capable calculation nodes. However, in this case, the hardware resource is wasted because the calculation processing capacities of the I/O-capable calculation nodes are not actively used.
According to the technique described above, when all the calculation nodes are used, the processing delay caused by waiting for synchronization occurs. However, when the waiting for synchronization is avoided, an empty calculation node exists and thus the hardware resource cannot be effectively used.